import axios from "axios";

import Element from 'element-ui'
import router from "./router";

axios.defaults.baseURL = `http://localhost:8999/music`   // 请求的基础路径

// console.log("==================");
// console.log(axios)

const request = axios.create({
  timeout: 10000,
  headers: {
    'Content-Type': 'application/json; charset=utf-8'
  }
})

// 请求前携带token
request.interceptors.request.use(config => {
  config.headers['access_token'] = localStorage.getItem("access_token") // 请求头带上token
  return config
})


request.interceptors.response.use(response => {
    let res = response.data;
    console.log("返回请求拦截");
    console.log(res)
    if (res.code === 200 || res.code === 111) {
      return response
    } else {
      Element.Message.error(res.msg ? res.msg : '系统异常！', {duration: 3 * 1000})
      return Promise.reject(response.data.msg)
    }

  },
  error => {
    console.log(error)
    if (error.response.data) {
      error.message = error.response.data.msg
    }
    if (error.response.status === 401) {  // 请求要求身份验证。对于登录后请求的网页，服务器可能返回此响应
      console.log("错误token，需要将本地token以及数据清空");
      localStorage.removeItem("access_token")
      // 重新刷新浏览器。,否则的话删除本地也不会更新图片验证码
      router.go(0)
      // router.push("/login")   // 路由到登录界面
    }
    Element.Message.error(error.message, {duration: 3 * 1000})
    return Promise.reject(error)
  }
)

export default request
